1. Field of the Invention
The invention generally relates to methods and systems for determining the location of a Wi-Fi-enabled device, and, more specifically, to methods and systems for efficiently managing and distributing Wi-Fi location data to a mobile client device so the client can use such information to estimate its position.
2. Discussion of Related Art
In recent years the number of mobile computing devices has increased dramatically, creating the need for more advanced mobile and wireless services. Mobile email, walkie-talkie services, multi-player gaming and call-following are examples of how new applications are emerging on mobile devices. In addition, users are beginning to demand and seek out applications that not only utilize their current location but also share that location information with others. Parents wish to keep track of their children, supervisors need to track the location of the company's delivery vehicles, and a business traveler looks to find the nearest pharmacy to pick up a prescription. All of these examples require an individual to know his own current location or that of someone else. To date, we all rely on asking for directions, calling people to ask their whereabouts, or having workers check-in from time to time with their position.
Location-based services represent an emerging class of mobile applications that leverage the ability of devices to calculate their current geographic position and report that to a user or to a service. Some examples of these services include local weather, traffic updates, driving directions, child trackers, buddy finders and urban concierge services. These new location sensitive devices rely on a variety of technologies that all use the same general concept: using radio signals coming from known reference points, these devices can mathematically calculate the user's position relative to these reference points. Each of these technologies has strengths and weaknesses according to the specific radio technologies and positioning algorithms it employs.
The Global Positioning System (GPS) operated by the US Government leverages dozens of orbiting satellites as reference points. These satellites broadcast radio signals that are picked up by GPS receivers. The receivers measure the time it took for a received signal to travel to the receiver. After receiving signals from three or more GPS satellites the receiver can triangulate its position on the globe. For the system to work effectively, the radio signals must reach the receiver with little or no interference. Weather, buildings or structures, and foliage can interfere with this process because the receivers require a clear line-of-sight to three or more satellites. Interference can also be caused by a phenomenon known as multi-path. The radio signals from the satellites bounce off physical structures causing multiple signals from the same satellite to reach a receiver at different times. Since the receiver's calculation is based on the time the signal took to reach the receiver, multi-path signals confuse the receiver and cause substantial errors.
Cell tower triangulation is another method used by wireless and cellular carriers to determine a user or device's location. The wireless network and the handheld device communicate with each other to share signal information that the network can use to calculate the location of the device. This approach was originally seen as a superior model to GPS since these signals do not require direct line of site and can penetrate buildings better. Unfortunately these approaches have proven to be suboptimal due to the heterogeneous nature of the cellular tower hardware along with the issues of multi-path signals and the lack of uniformity in the positioning of cellular towers.
Assisted GPS is a newer model that combines both GPS and cellular tower techniques to produce a more accurate and reliable location calculation for mobile users. In this model, the wireless network attempts to help GPS improve its signal reception by transmitting information about the clock offsets of the GPS satellites and the general location of the user based on the location of the connected cell tower. These techniques can help GPS receivers deal with weaker signals that one experiences indoors and helps the receiver obtain a ‘fix’ on the closest satellites quicker providing a faster “first reading”. These systems have been plagued by slow response times and poor accuracy—greater than 100 meters in downtown areas.
There have been some more recent alternative models developed to try and address the known issues with GPS, A-GPS and cell tower positioning. One of them, known as TV-GPS, utilizes signals from television broadcast towers (see, e.g., Muthukrishnan, K. et al., Towards Smart Surroundings: Enabling Techniques and Technologies for Localization, from Location-and Context-Awareness, Springer Berlin, Heidelberg, May 2005). The concept relies on the fact that most metropolitan areas have 3 or more TV broadcast towers. A proprietary hardware chip receives TV signals from these various towers and uses the known positions of these towers as reference points. The challenges facing this model are the cost of the new hardware receiver and the limitations of using such a small set of reference points. For example, if a user is outside the perimeter of towers, the system has a difficult time providing reasonable accuracy. The classic example is a user along the shoreline. Since there are no TV towers out in the ocean, there is no way to provide reference symmetry among the reference points resulting in a calculated positioning well inland of the user.
Microsoft Corporation and Intel Corporation (through a research group known as PlaceLab) have deployed a Wi-Fi location system using a database of access point locations acquired from amateur scanners (known as “wardrivers”) who submit their Wi-Fi scan data to public community web sites (see, e.g., LaMarca, A. et al., Place Lab: Device Positioning Using Radio Beacons in the Wild, in Proceedings of the Third International Conference an Pervasive Computing, May 2005). Examples include WiGLE, Wi-FiMaps.com, Netstumbler.com and NodeDB. Both Microsoft and Intel have developed their own client software that uses the Wi-Fi information submitted by wardrivers as a reference in estimating the location of a client device.
Because individuals voluntarily supply the data, these systems suffer from a number of performance and reliability problems. First, the data across the databases are not contemporaneous; some of the data are new while other portions are 3-4 years old. The age of Wi-Fi location data is important, since over time access points can be moved or taken offline. Second, the data are acquired using a variety of hardware and software configurations. Every 802.11 radio and antenna has different signal reception characteristics affecting the representation of the strength of the signal. Each scanning software implementation scans for Wi-Fi signals in different ways during different time intervals. As a result, the access point information in the database lacks a common standard of reference. Third, the user-supplied data suffer from arterial bias. Because the data is self-reported by individuals who are not following designed scanning routes, the data tends to aggregate around heavily trafficked areas. Arterial bias causes location estimates to be “pulled” towards main arteries, resulting in substantial accuracy errors. Fourth, these databases include the calculated position of scanned access points rather than the raw scanning data obtained by the 802.11 hardware. Each of these databases calculates the access point location differently and each with a rudimentary weighted average formula. The result is that the location estimates for some access points in the database are highly inaccurate.
There have been a number of commercial offerings of Wi-Fi location systems targeted at indoor positioning (see, e.g., Muthukrishnan, K., et al., Towards Smart Surroundings: Enabling Techniques and Technologies for Localization, Lecture Notes in Computer Science, Vol. 3479, pp. 350-362, January 2005; Hazas, M., et al., Location-Aware Computing Comes of Age, IEEE Computer, Vol. 37(2), pp. 95-97, February 2004, both of which are incorporated by reference herein). These systems are designed to address asset and people tracking within a controlled environment like a corporate campus, a hospital facility or a shipping yard. The classic example is having a system that can monitor the exact location of the crash cart within the hospital so that when there is a cardiac arrest the hospital staff doesn't waste time locating the device. The accuracy requirements for these use cases are very demanding typically calling for 1-3 meter accuracy. These systems use a variety of techniques to fine tune their accuracy including conducting detailed site surveys of every square foot of the campus to measure radio signal propagation. They also require a constant network connection so that the access point and the client radio can exchange synchronization information similar to how A-GPS works. While these systems are becoming more reliable for these indoor use cases, they are ineffective in any wide-area deployment. It is impossible to conduct the kind of detailed site survey required across an entire city and there is no way to rely on a constant communication channel with 802.11 access points across an entire metropolitan area to the extent required by these systems. Most importantly outdoor radio propagation is fundamentally different than indoor radio propagation rendering these indoor positioning algorithms almost useless in a wide-area scenario.
There are numerous 802.11 location scanning clients available that record the presence of 802.11 signals and associate this information with a GPS location reading. These software applications are operated manually and produce a log file of the readings. Examples of such applications are Netstumber, Kismet and Wi-FiFoFum. Some hobbyists use these applications to mark the locations of 802.11 access point signals they detect and share them with each other. The management of this data and the sharing of the information is performed on an ad hoc basis. These applications do not perform any calculation as to the physical location of the access point; they merely record the location from which the access point was detected.
Using data gathered by any of these systems requires access to either the raw data that were gathered or the calculated locations for each of the access points. Devices that require the use of these data must somehow gain access to the data. This access is generally accomplished in one of two ways: (i) by means of a network request-response interaction between the mobile device and a networked server; or (ii) by storing a Wi-Fi access point database on the mobile device itself.
Software that operates on mobile devices is often constrained by the limited physical capabilities of such devices and the cost of mobile resources and services. These constraints include both hardware (memory capacity, power storage and consumption, CPU speed, network capacity and availability) as well as cost constraints for network access and bandwidth consumption. These limitations place a burden on any solution that intends to make use of the available resources, and in particular, create an optimization problem for efficiently managing and distributing Wi-Fi location data.
This optimization problem is compounded by the fact that the Wi-Fi location database itself requires frequent updates. This is a result of the transient nature of Wi-Fi access points, which are often moved or decommissioned. Thus, the database must be updated regularly to ensure that it contains relatively current Wi-Fi location information.